package com.cleanvegetable.company.controller;

import com.cleanvegetable.company.dto.CompanyDTO;
import com.cleanvegetable.company.dto.CompanyQueryDTO;
import com.cleanvegetable.company.service.CompanyService;
import com.cleanvegetable.common.result.Result;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;

/**
 * 公司控制器
 * 处理公司相关的请求
 *
 * @author cleanvegetable
 * @date 2024/02/24
 */
@Slf4j
@RestController
@RequestMapping("/api/company")
public class CompanyController {
    
    /**
     * 公司服务
     */
    @Autowired
    private CompanyService companyService;
    
    /**
     * 新增公司信息
     *
     * @param companyDTO 公司信息
     * @return 创建结果
     */
    @PostMapping("/add")
    public Result<Integer> addCompany(@Valid @RequestBody CompanyDTO companyDTO) {
        log.info("新增公司信息，参数：{}", companyDTO);
        Integer id = companyService.addCompany(companyDTO);
        log.info("新增公司信息成功，ID：{}", id);
        return Result.success(id);
    }
    
    /**
     * 分页查询公司信息
     *
     * @param queryDTO 查询条件
     * @return 分页结果
     */
    @PostMapping("/page")
    public Result<PageInfo<CompanyDTO>> pageQuery(@RequestBody CompanyQueryDTO queryDTO) {
        log.info("分页查询公司信息，参数：{}", queryDTO);
        PageInfo<CompanyDTO> pageInfo = companyService.pageQuery(queryDTO);
        log.info("分页查询公司信息成功，总数：{}", pageInfo.getTotal());
        return Result.success(pageInfo);
    }
} 